This invention relates generally to a connection control apparatus for use in a communication network and more particularly to a connection control apparatus for controlling, in a network with a bus such as a high-speed serial bus IEEE 1394 (refer to "IEEE Standard for a High Performance Serial Bus", IEEE Standard 1394-1995) to which a personal computer, its peripheral device and/or an audio visual device (hereinafter referred to as a "AV device") can be connected, those devices connected to such a bus.
In recent years, personal computers become common in homes, and various techniques have been and are being developed for improving the usability of such personal computers by their users. It has also become common for audio and visual information to be treated in digital form. For example, data from a digital video camera can be processed in a personal computer at home. Under such circumstances, new bus systems such as a USB (Universal Serial Bus) and an IEEE 1394 bus have been proposed as new technology for improving the connectability between a computer and its peripheral device, such as a printer or an image scanner, and actually been brought to market in some fields.
As compared to the USB that needs interfacing by a computer for the connection between its peripheral devices, the IEEE 1394 bus does not need any interfacing by a computer for such connection. The latter can therefore be used not only for connecting a personal computer to its peripheral devices such as a printer, a hard disc drive, or an image scanner, but also for transferring main and control signals among video devices such as a digital video camera and audio devices. Since it is thus possible to construct a network by connecting a plurality of devices complying with the IEEE 1394 standard (hereinafter referred to simply as "1394 devices"), this standard is considered to be a promising standard for use in a LAN for home networking.
FIG. 9 shows, by way of example, a network constructed to connect AV devices, which are 1394 devices, using an IEEE 1394 bus. In the example shown in FIG. 9, five AV devices 80a to 80e all of which are 1394 devices are connected to an IEEE 1394 bus B10. In order to associate an isochronous channel when transferring data between AV devices, each AV device is provided with a master plug register (MPR) and a plug control register (PCR) as prescribed in the IEC 61883 standard ("Consumer Audio/Video Equipment--Digital Interface--Part 1: General", Reference Number CEI/IEC 61883-1: 1998).
Each of these registers comprises an input and an output register for audio data and video data, and each master plug register is provided with an input master plug register (iMPR) and an output master plug register (oMPR), while each plug control register is provided with an input plug control register (iPCR) and an output plug control register (oPCR).
In the example shown in FIG. 9, the AV devices 80a to 80d comprise iMPRs 82a to 82d, respectively, and the AV device 80e comprises an oMPR 84. The iMPR 82a to 82d comprise iPCRs 86 and 88, an iPCR 90, an iCPR 92 and iCPRs 94 and 96, respectively, and the oMPR 84 comprises an oPCR 98. In FIG. 9, shown at C10 is an isochronous channel that is established to transmit or receive data when an isochronous transfer of the data should take place between AV devices connected to the IEEE 1394 bus B10.
FIG. 10 illustrates detailed formats for the above-described registers, wherein (a) shows the format for the output master plug register (oMPR), (b) the format for the input master plug register (iMPR), (c) the format for the output plug control register (oPCR) and (d) the format for the input plug control register (iPCR). These formats have been standardized. The numerals shown at the bottom of each format represent the numbers of bits of respective data constituting the relevant format.
Each of the AV devices 80a to 80e comprises a respective single one of the iMPRs 82a to 82d and oMPR 84, each of which manages the number of plug control registers in a respective one of the AV devices, i.e., iPCRs 86 to 96 and oPCR 98. The number of oPCRs and iPCRs which can be present in one AV device is thirty-one at maximum. The oPCR and IPCR include, for the information required to establish a connection, fields FC2 and FD2 each for storing information indicating the presence of a broadcast connection, fields FC3 and FD3 each for storing information indicating the number of point-to-point connections, fields FC5 and FD5 each for storing information indicating an isochronous channel number and so on, respectively. The oPCR further includes a field FC6 for storing information indicating a transfer rate of isochronous data flow and a field FC8 for storing information indicating a bandwidth. Addresses of the registers in which the MPR and PCR are described are described, as shown in FIG. 11, in addresses from FF FF F00900h to FF FF F009 FFh (h represents hexadecimal notation) within a CSR (Command and Status Register) space defined in the IEEE 1394 standard. FIG. 11 illustrates a structure of the CSR space according to the IEEE 1394 standard.
For isochronous data output from an AV device, a path for sending the isochronous data between AV devices can be determined by making a proper setting to these PCRs, whereby it is possible to have a data transfer made between any arbitrary AV devices.
Referring again to FIG. 9, the concept of connection utilizing PCRs will be described. The connection utilizing PCRs is categorized into two types, i.e., a point-to-point connection and a broadcast connection.
The point-to-point connection is a connection in which an oPCR of an AV device is connected through an isochronous channel to an iPCR of another AV device. This type of connection corresponds, for example, to the data flow between the oPCR 98 of the AV device 80e and the iPCR 90 of the AV device 80b shown in FIG. 9. This connection is protected so that the relevant registers can be rewritten only by the device that established this connection, or by the relevant control application program.
It is also possible to have a plurality of point-to-point connections present with respect to the same single PCR. In the example shown in FIG. 9, this corresponds to the connection between the oPCR 98 of the AV device 80e and the iPCR 94 of the AV device 80d. In this example, there are three point-to-point connections which use the same isochronous data flow.
The broadcast connection is composed of a broadcast-out connection for associating one oPCR of an AV device only with one isochronous channel and a broadcast-in connection for associating one iPCR of another AV device only with one isochronous channel.
In the example of FIG. 9, the association of the oPCR 98 of the AV device 80e with a broadcast channel number (usually set to "63") for the isochronous data is a broadcast-out connection, while the association of the iPCR 92 of the AV device 80c with the broadcast channel number for the isochronous data is a broadcast-in connection.
These two types of broadcast connections are established independently of the mutual relation in the condition of the sender and the recipient. Any device other than those devices or control application programs which have established the broadcast connection can alter (or rewrite) the PCR not only to cut the connection but also to allocate the broadcast isochronous channel of the currently transferring device.
The data transmission/reception after the establishment of a connection between AV devices can be started by controlling the sending and receiving AV devices by AV/C (Audio Video Control) commands defined in "AV/C Digital Interface Command Set Version 3.0", 1394 Trade Association, Apr. 15, 1998 or "AV/C Tape Recorder/Player Subunit Specification Version 2.1", 1394 Trade Association, Jan. 11, 1998. As AV/C commands, a play command, a stop command, a fast forward command, a rewind command, a record command, a slow forward command and so on are available. The transmission/reception of the AV/C commands onto/from the 1394 bus is carried out in accordance with the Function Control Protocol prescribed in the EC 61883 Standard. When an isochronous transfer is completed, the connection is released by clearing the setting to the transmitting/receiving AV devices.
Based on the above-described setting to the PCRs, a controller (connection control apparatus) can establish or release a connection between 1394-compliant AV devices. One example of such establishment and release of a connection between AV devices will now be described.
FIG. 12 illustrates the conventional way of controlling connections. It is here assumed that four 1394 devices 100a to 100d and one controller 102 are connected to a 1394 bus B12 as shown in FIG. 12. For the sake of simplicity, it is further assumed that the 1394 devices 100a to 100d have no function of controlling connections.
The controller 102 can switch two connection pairs between the 1394 device 100a and the 1394 device 100c and between the 1394 device 100b and the 1394 device 100d to two connection pairs between the 1394 device 100a and the 1394 device 100d and between the 1394 device 100b and the 1394 device 100c and vice versa.
In this case, since there is only one controller 102 on the 1394 bus B12 and each 1394 device has only one connection established, controls of the 1394 devices 100a to 100d such as playing and recording by their AV/C commands will not conflict with each other.
We now consider another case where six 1394 devices 104a to 104f and three controllers 106a to 106c are connected to a 1394 bus B14 as shown in FIG. 13. FIG. 13 is an illustration showing one conventional bus structure and exemplary connections made therein from which problems of the prior art will be apparent. For the sake of simplicity, it is assumed that the 1394 devices 104a to 104f have no connection control functions.
Let's consider a situation where the 1394 devices 104a and 104b are connected respectively to the 1394 devices 104d and 104c by the controller 106a (as indicated by solid-line arrows in FIG. 13), the 1394 device 104a is connected to the 1394 device 104e by the controller 106b (as indicated by a dotted arrow in FIG. 13) and the 1394 device 104a is connected to the 1394 device 104f by the controller 106c (as indicated by a dot-and-dash arrow in FIG. 13).
In this situation, three connections overlap with each other at the 1394 device 104a. In the situation shown in FIG. 13, plural controllers 106a to 106c coexist on the same 1394 bus B14. When the connection set by the controller 106a between the 1394 device 104a and the 1394 device 104d is a point-to-point connection, this connection will be protected as described before. However, even if the connection between these devices is protected, the control of the 1394 devices can also be done by other controllers 106b and 106c. This is because, in the case of a point-to-point connection, the connection between the 1394 devices is protected but the control to these 1394 devices is not protected.
Let's consider a case where a dubbing operation is performed between the 1394 device 104a and the 1394 device 104d. In this case, it is assumed that the 1394 devices 104a and 104d are video devices.
Suppose that the controller 106a controls a connection between the 1394 devices 104a and 104d and protects the connection. By means of this protection, the connection between the 1394 devices 104a and 104d is reliably protected. However, since no protection is made with respect to the control of 1394 devices as described above, there may occur such a problem that the dubbing operation is disturbed when an AV/C command such as a play command, a record command and a stop command is issued to the 1394 device 104a, 104d, for example, by the controller 106b.
The above problem seems to be solved by applying, to the way of controlling 1394 devices, such an idea of protection that when a connection between 1394 devices is controlled by a certain controller the right of controlling a transmitting operation, a receiving operation and so on is given to that controller. However, in the case such as that shown in FIG. 13 where up to three connections have been established for the 1394 device 104a, it is not known to which controller the right of controlling the 1394 device 104a belongs. Thus, there is a problem that it cannot eventually be determined to which controller the right of controlling the 1394 device 104a belongs.
When only two controllers are connected to a 1394 bus, it will easily be determined that any connections other than those made by the present controller have been made by another controller. However, when there are more than two controllers connected and when only one connection has been established in each 1394 device as in the 1394 devices 104b, 104c, 104d, 104e and 104f, there will occur the problem that it is not possible for a given controller to know by which controllers connections, other than those established by this given controller, have been established.